package com.yanfan.maintain.domain;

import com.yanfan.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotEmpty;
import java.util.Date;

/**
 * @Author huan
 * @Description 设备图表请求实体类
 * @ClassName 2023年04月03日 16:28:00
 * @Version 1.0
 **/
public class DeviceChartRequest extends BaseEntity {

    @NotEmpty(message = "日期维度 dateType 不能为空   日 、月、 年  (1,2,3)  4为周, 5自定义")
    @ApiModelProperty("日期维度： 日 、月、 年  (1,2,3)  4为周, 5自定义")
    private Integer dateType;


    /**
     * 查询范围 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date beginDate;


    /**
     * 查询范围 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date endDate;


    /**
     * 日期格式 group by
     */
    private String dateFormatGroup;

    /**
     * 日期格式  select
     */
    private String dateFormatSelect;

    private Long userId;

    /**
     * 设备ID
     */
    private Long deviceId;

    /**
     * 任务状态
     */
    /**
     *
     */
    private int taskStatus;


    /**
     * 当前页
     */
    private Integer pageNum;
    /**
     * 页条数
     */
    private Integer pageSize;


    /**
     * 设备类别的图表和，下面的列表搜索条件 保持一致  ---------------------------- begin
     */

    /**
     * 设备名称
     */
    private String deviceName;
    /**
     * 产品ID
     */
    private Long productId;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 设备组
     */
    private Long groupId;

    /**
     * 判断是不是从故障设备进入
     */
    private Integer breakDeviceFlag;

    /**
     * 安装机位
     */
    private String placement;


    /**
     * 查询范围 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date chartBeginDate;


    /**
     * 查询范围 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date chartEndDate;

    /**
     * 设备类别的图表和，下面的列表搜索条件 保持一致  ---------------------------- end
     */
    public Integer getDateType() {
        return dateType;
    }

    public void setDateType(Integer dateType) {
        this.dateType = dateType;
    }

    public Date getBeginDate() {
        return beginDate;
    }

    public void setBeginDate(Date beginDate) {
        this.beginDate = beginDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }


    public String getDateFormatGroup() {
        return dateFormatGroup;
    }

    public void setDateFormatGroup(String dateFormatGroup) {
        this.dateFormatGroup = dateFormatGroup;
    }

    public String getDateFormatSelect() {
        return dateFormatSelect;
    }

    public void setDateFormatSelect(String dateFormatSelect) {
        this.dateFormatSelect = dateFormatSelect;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(Long deviceId) {
        this.deviceId = deviceId;
    }

    public int getTaskStatus() {
        return taskStatus;
    }

    public void setTaskStatus(int taskStatus) {
        this.taskStatus = taskStatus;
    }

    public Integer getPageNum() {
        return pageNum;
    }

    public void setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public String getDeviceName() {
        return deviceName;
    }

    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Long getGroupId() {
        return groupId;
    }

    public void setGroupId(Long groupId) {
        this.groupId = groupId;
    }

    public Integer getBreakDeviceFlag() {
        return breakDeviceFlag;
    }

    public void setBreakDeviceFlag(Integer breakDeviceFlag) {
        this.breakDeviceFlag = breakDeviceFlag;
    }

    public String getPlacement() {
        return placement;
    }

    public void setPlacement(String placement) {
        this.placement = placement;
    }

    public Date getChartBeginDate() {
        return chartBeginDate;
    }

    public void setChartBeginDate(Date chartBeginDate) {
        this.chartBeginDate = chartBeginDate;
    }

    public Date getChartEndDate() {
        return chartEndDate;
    }

    public void setChartEndDate(Date chartEndDate) {
        this.chartEndDate = chartEndDate;
    }
}
